package com.ssy.lingxi.platform.manage.service.content;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.model.vo.PageVO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.platform.manage.entity.content.MemberNotice;
import com.ssy.lingxi.platform.manage.model.request.common.CommonIdRequest;
import com.ssy.lingxi.platform.manage.model.request.common.CommonStatusRequest;
import com.ssy.lingxi.platform.manage.model.request.content.ColumnTypeRequest;
import com.ssy.lingxi.platform.manage.model.request.content.MemberNoticePageRequest;
import com.ssy.lingxi.platform.manage.model.request.content.MemberNoticeRequest;

import java.util.List;

/**
 * 内容能力-公告管理
 * @author wyx
 * @version 2.0.0
 * @date 2021-09-28
 */
public interface IMemberNoticeService {

    Wrapper<PageData<MemberNotice>> page(MemberNoticePageRequest request, UserLoginCacheDTO user);

    Wrapper<MemberNotice> get(CommonIdRequest request);

    Wrapper<Void> add(MemberNoticeRequest request, UserLoginCacheDTO user);

    Wrapper<Void> update(MemberNoticeRequest request, UserLoginCacheDTO user);

    Wrapper<Void> updateStatus(CommonStatusRequest request, UserLoginCacheDTO user);

    Wrapper<Void> delete(CommonIdRequest request, UserLoginCacheDTO user);

    Wrapper<List<MemberNotice>> findAllByColumnType(Integer columnType, UserLoginCacheDTO user);

    Wrapper<PageData<MemberNotice>> findNewestNotice(PageVO pageVO, UserLoginCacheDTO user);

    Wrapper<List<MemberNotice>> findByColumnTypeMemberInfo(ColumnTypeRequest columnTypeRequest);

}
